#ifndef PLANETARY_SYSTEM_H
#define PLANETARY_SYSTEM_H

#include <QtGui/QMainWindow>
#include <QtGui/QPushButton>
#include "interface.h"
#include "common.h"
#include "psglscene.h"
#include "psglmodel.h"

class MathModel;
class PSGLModel;


class PlanetarySystemWidget : public QMainWindow
{
    Q_OBJECT

public:
  PlanetarySystemWidget(QWidget *parent = NULL);
  ~PlanetarySystemWidget();
public slots:
  void fileOpen();
  void fileExit();

  void analysisPlot();

  void runSolverDialog();
  void runSolver(const SolutionParameters& solPar);

  void runGraphicOptionsDialog();
 
  void runPlanetListDialog();

  void mathModelChaned();
  void planetNameChanged();

private:
  // Widget for openGL
  PSGLScene* drawingPanel;

  QPushButton* solveButton;
  SolverDialog* solverDialog;

  PlotDialog* plotDialog;

  GraphicsOptionDialog* graphicsOptionDialog;

  PlanetSystemDialog* planetSystemView;

  AnimationScroller* animationScroller;

  QMenu* fileMenu;
  QAction* openAct;
  QAction* exitAct;

  QMenu* analysisMenu;
  QAction* plotAct;

  QMenu* optionsMenu;
  QAction* grahpicOptions;

  QMenu* systemMenu;
  QAction* planetList;

  MathModel* mathModel;
};

#endif // PLANETARY_SYSTEM_H
